package cn.ljy.common.config;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;

/**
 * 专门设置tomcat的上传文件大小
 */
//@Configuration
public class TomcatConfigOfUpload {
    //个方法创建了一个 TomcatServletWebServerFactory 实例，并使用 addAdditionalTomcatConnectors() 方法添加了一个额外的连接器。
    // 这个连接器是用来处理文件上传的，setMaxPostSize() 方法设置了 POST 请求的最大大小，这里设置为 100MB。
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        // 使用一个具体的端口号，例如 8080
        tomcat.setPort(8080);
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

    //createStandardConnector() 方法：这是一个私有辅助方法，用于创建并配置一个 Connector 实例。
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setMaxPostSize(204857600); // 200MB
        return connector;
    }
}
